#ifndef ICYBUDDY_H
#define ICYBUDDY_H

#include <QObject>
#include <QIcon>

#include "icysettings.h"

class IcyBuddy
{
    public:
        explicit IcyBuddy(IcySettings *fSettings);
        ~IcyBuddy();

        _fastcall void setScreenName(const QString &sfScreenName) { *sScreenName = sfScreenName; }
        _fastcall void setAlias(const QString &sfAlias) { *sAlias = sfAlias; }
        _fastcall void setXStatusHead(const QString &sfHead) { *sXStatusHead = sfHead; }
        _fastcall void setXStatusText(const QString &sfText) { *sXStatusText = sfText; }
        _fastcall void setGroup(const quint16 u16fGroup) { u16Group = u16fGroup; }
        _fastcall void setType(const quint16 u16fType) { u16Type = u16fType; }
        _fastcall void setStatus(const quint16 u16fStatus);
        _fastcall void setXStatus(const quint16 u16fXStatus);
        _fastcall void setIndex(const int ifIndex) { iIndex = ifIndex; }

        QString screenName() const { return *sScreenName; }
        QString alias() const { return *sAlias; }
        QString xStatusHead() const { return *sXStatusHead; }
        QString xStatusText() const { return *sXStatusText; }

        quint16 group() const { return u16Group; }
        quint16 type() const { return u16Type; }
        quint16 status() const { return u16Status; }
        quint16 xStatus() const { return u16XStatus; }
        qint32 index() const { return iIndex; }

        QIcon statusIcon() const { return *fStatusIcon; }
        QIcon xStatusIcon() const { return *fXStatusIcon; }

    private:
        QString *sScreenName,
                *sAlias,
                *sXStatusHead,
                *sXStatusText;
        quint16 u16Group,
                u16Type,
                u16Status,
                u16XStatus;
        qint32 iIndex;
        QIcon *fStatusIcon, *fXStatusIcon;
        IcySettings *settings;
};

typedef QList<IcyBuddy* > IcyBuddies;
#endif // ICYBUDDY_H
